home *** CD-ROM | disk | FTP | other *** search
- (*===========================================================================*)
- (* Match a string -- Initialization *)
- (* *)
- (* Copyright 1988, 1989, 1990 by H. Roy Engehausen. All rights reserved. *)
- (* *)
- (*===========================================================================*)
-
- (*===========================================================================*)
- (* This one time code is executed by TURBO very early to init the variables *)
- (*===========================================================================*)
-
- PROCEDURE match_init;
-
- BEGIN;
-
- (*-----------------------------------------------------------------------*)
- (* Branch table *)
- (*-----------------------------------------------------------------------*)
-
- FILLCHAR(match_branch_table, SIZEOF(match_branch_table), CHAR(br_other));
-
- match_branch_table[ORD('@')] := br_at;
- match_branch_table[ORD('$')] := br_dollar;
- match_branch_table[ORD('"')] := br_dq;
- match_branch_table[ORD('=')] := br_equal;
- match_branch_table[ORD('>')] := br_gt;
- match_branch_table[ORD('(')] := br_lparen;
- match_branch_table[ORD('<')] := br_lt;
- match_branch_table[ORD('#')] := br_pound;
- match_branch_table[ORD('+')] := br_plus;
- match_branch_table[ORD('?')] := br_question;
- match_branch_table[ORD('*')] := br_star;
- match_branch_table[ORD('\')] := br_bslash;
-
- (*-----------------------------------------------------------------------*)
- (* Character types *)
- (*-----------------------------------------------------------------------*)
-
- FILLCHAR(match_strtab, SIZEOF(match_strtab), CHR($80));
- (* 01 = special *)
- (* 02 = small a-z *)
- (* 04 = capital A-Z *)
- (* 08 = numeric *)
- (* 20 = hex *)
- match_strtab[ORD(' ')] := CHR($40);
- match_strtab[ORD('<')] := CHR($01);
- match_strtab[ORD('+')] := CHR($01);
- match_strtab[ORD('$')] := CHR($01);
- match_strtab[ORD('*')] := CHR($01);
- match_strtab[ORD('>')] := CHR($01);
- match_strtab[ORD('?')] := CHR($01);
- match_strtab[ORD('#')] := CHR($01);
- match_strtab[ORD('@')] := CHR($01);
- match_strtab[ORD('=')] := CHR($01);
- match_strtab[ORD('"')] := CHR($01);
- match_strtab[ORD('a')] := CHR($22);
- match_strtab[ORD('b')] := CHR($22);
- match_strtab[ORD('c')] := CHR($22);
- match_strtab[ORD('d')] := CHR($22);
- match_strtab[ORD('e')] := CHR($22);
- match_strtab[ORD('f')] := CHR($22);
- match_strtab[ORD('g')] := CHR($02);
- match_strtab[ORD('h')] := CHR($02);
- match_strtab[ORD('i')] := CHR($02);
- match_strtab[ORD('j')] := CHR($02);
- match_strtab[ORD('k')] := CHR($02);
- match_strtab[ORD('l')] := CHR($02);
- match_strtab[ORD('m')] := CHR($02);
- match_strtab[ORD('n')] := CHR($02);
- match_strtab[ORD('o')] := CHR($02);
- match_strtab[ORD('p')] := CHR($02);
- match_strtab[ORD('q')] := CHR($02);
- match_strtab[ORD('r')] := CHR($02);
- match_strtab[ORD('s')] := CHR($02);
- match_strtab[ORD('t')] := CHR($02);
- match_strtab[ORD('u')] := CHR($02);
- match_strtab[ORD('v')] := CHR($02);
- match_strtab[ORD('w')] := CHR($02);
- match_strtab[ORD('x')] := CHR($02);
- match_strtab[ORD('y')] := CHR($02);
- match_strtab[ORD('z')] := CHR($02);
- match_strtab[ORD('A')] := CHR($24);
- match_strtab[ORD('B')] := CHR($24);
- match_strtab[ORD('C')] := CHR($24);
- match_strtab[ORD('D')] := CHR($24);
- match_strtab[ORD('E')] := CHR($24);
- match_strtab[ORD('F')] := CHR($24);
- match_strtab[ORD('G')] := CHR($04);
- match_strtab[ORD('H')] := CHR($04);
- match_strtab[ORD('I')] := CHR($04);
- match_strtab[ORD('J')] := CHR($04);
- match_strtab[ORD('K')] := CHR($04);
- match_strtab[ORD('L')] := CHR($04);
- match_strtab[ORD('M')] := CHR($04);
- match_strtab[ORD('N')] := CHR($04);
- match_strtab[ORD('O')] := CHR($04);
- match_strtab[ORD('P')] := CHR($04);
- match_strtab[ORD('Q')] := CHR($04);
- match_strtab[ORD('R')] := CHR($04);
- match_strtab[ORD('S')] := CHR($04);
- match_strtab[ORD('T')] := CHR($04);
- match_strtab[ORD('U')] := CHR($04);
- match_strtab[ORD('V')] := CHR($04);
- match_strtab[ORD('W')] := CHR($04);
- match_strtab[ORD('X')] := CHR($04);
- match_strtab[ORD('Y')] := CHR($04);
- match_strtab[ORD('Z')] := CHR($04);
- match_strtab[ORD('0')] := CHR($28);
- match_strtab[ORD('1')] := CHR($28);
- match_strtab[ORD('2')] := CHR($28);
- match_strtab[ORD('3')] := CHR($28);
- match_strtab[ORD('4')] := CHR($28);
- match_strtab[ORD('5')] := CHR($28);
- match_strtab[ORD('6')] := CHR($28);
- match_strtab[ORD('7')] := CHR($28);
- match_strtab[ORD('8')] := CHR($28);
- match_strtab[ORD('9')] := CHR($28);
-
- END;